#ifndef PSCREEN_H
#define PSCREEN_H

typedef struct _ScreenPal
{
	WORD Version;
	WORD NumberOfEntries;
	PALETTEENTRY aEntries[256];
} ScreenPal;

#define _DEP_SCREEN			\
	HWND		chWnd;		\
	pCFrame		cFrame;		\
	ScreenPal	cLogPal;	\
	HPALETTE	chPal;		\
	uint32		cBitDepth;	\


// cBitDepth is set when BITDEPTH == 16.  Not used when in 8 bit image more

PLIBEXP pCScreen	newCScreen(HWND hWnd,
					int32 NotUsedWidth, int32 NotUsedHeight, int32 NotUsedDepth,
					char* NotUsedModeChangeMsg, uint8 ucBitsPerPixel=32);       // kharmon.  05-08-06.  Improved Graphics.

// public PLATFORM interfaces
//
#define			CScreenGetFrame(This)	((This) ? (This)->cFrame : 0)
#define			CScreenLogPal(This)		((This)->cLogPal)
#define			CScreenhPal(This)		((This)->chPal)
#define			CScreenBitDepth(This)	((This)->cBitDepth)
#define			CScreenHWND(This)		((This)->chWnd)

#define			CScreenMoved(This, hWnd)		/* not used */
#define			CScreenForcedVideoMode(This)	(true)

PLIBEXP void	CScreenFlipPagesDC(pCScreen This, HDC);

PLIBEXP void	CScreenSizeChanged(pCScreen This);
PLIBEXP void	CScreenSetPalette(pCScreen This, char *Palette);
PLIBEXP void	CScreenSetQuadPalette(pCScreen, RGBQuad *, uint32);

// protected PLATFORM interfaces
//
bool8		CScreenConstruct(pCScreen This, HWND hWnd);

#endif
